/**
 * 
 */
package com.I9lou.se.lurker.remote;

import java.util.List;
import java.util.Map;

/**
 * 索引查询服务接口
 * @author chenwei
 * @date 2011-03-07
 */
public interface IndexSearcherService {
	
	/**
	 * 对指定搜索应用执行初始化操作，在一个搜索应用可服务前，需要先执行此初始化操作
	 * @param appId
	 * @param indexDirectories
	 * @param warmCommandList
	 */
	public void setupIndexSearcher(int appId, String[] indexDirectories, List<SearchCommand> warmCommandList);
	
	/**
	 * 搜索并返回结果，如果指定的搜索应用尚未进入服务，则返回忽略搜索的结果。
	 * @param appId 搜索应用ID
	 * @param command 搜索命令
	 * @return searchResult
	 */
	public SearchResult search(int appId, SearchCommand command);
	
	public List<Map<String, Object>> count(int appId, SearchCommand command, String[] facetCategories, int facetResultLimit);
	
	public List<Map<String, Object>> count(int appId, SearchCommand command, String facetField);
}
